package com.autumn.platform.core.accessor;

import java.util.Map;

import com.autumn.platform.core.Defaults;

@Defaults.Lookup
public interface IDataAccessorFactory {

    /**
     * 创建新的数据访问器对象
     * 
     * @return 数据访问器对象
     */
    public IDataAccessor newDataAccessor();

    /**
     * 根据root对象创建新的数据访问器对象
     * 
     * @param root root对象
     * @return 数据访问器对象
     */
    public IDataAccessor newDataAccessor(Object root);

    /**
     * 根据root对象和变量创建新的数据访问器对象
     * 
     * @param root root对象
     * @param vars 变量
     * @return 数据访问器对象
     */
    public IDataAccessor newDataAccessor(Object root, Map<String, Object> vars);
}
